// 通货相关工具函数

/**
 * 格式化价格显示
 * @param {number} price 价格
 * @returns {string} 格式化后的价格
 */
export const formatPrice = (price) => {
  if (price >= 1000) {
    return (price / 1000).toFixed(1) + 'K';
  } else if (price >= 1) {
    return price.toFixed(1);
  } else if (price >= 0.1) {
    return price.toFixed(2);
  } else {
    return price.toFixed(3);
  }
};

/**
 * 格式化变化百分比
 * @param {number} percent 百分比
 * @returns {string} 格式化后的百分比
 */
export const formatChangePercent = (percent) => {
  const sign = percent > 0 ? '+' : '';
  return `${sign}${percent.toFixed(1)}%`;
};

/**
 * 获取趋势颜色类
 * @param {string} trend 趋势 up/down/stable
 * @returns {string} CSS 类名
 */
export const getTrendClass = (trend) => {
  const classMap = {
    up: 'trend-up',
    down: 'trend-down',
    stable: 'trend-stable'
  };
  return classMap[trend] || 'trend-stable';
};

/**
 * 获取趋势图标
 * @param {string} trend 趋势
 * @returns {string} 图标字符
 */
export const getTrendIcon = (trend) => {
  const iconMap = {
    up: '↗',
    down: '↘',
    stable: '→'
  };
  return iconMap[trend] || '→';
};

/**
 * 计算价格变化
 * @param {number} currentPrice 当前价格
 * @param {number} previousPrice 之前价格
 * @returns {object} 变化信息
 */
export const calculatePriceChange = (currentPrice, previousPrice) => {
  if (!previousPrice || previousPrice === 0) {
    return { percent: 0, trend: 'stable' };
  }
  
  const percent = ((currentPrice - previousPrice) / previousPrice) * 100;
  let trend = 'stable';
  
  if (percent > 1) {
    trend = 'up';
  } else if (percent < -1) {
    trend = 'down';
  }
  
  return { percent: parseFloat(percent.toFixed(2)), trend };
};

/**
 * 通货稀有度分类
 * @param {number} price 价格
 * @returns {string} 稀有度等级
 */
export const getCurrencyRarity = (price) => {
  if (price >= 100) {
    return 'legendary'; // 传奇
  } else if (price >= 10) {
    return 'rare'; // 稀有
  } else if (price >= 1) {
    return 'uncommon'; // 不常见
  } else {
    return 'common'; // 常见
  }
};

/**
 * 获取推荐操作
 * @param {object} currency 通货信息
 * @returns {string} 推荐操作
 */
export const getRecommendedAction = (currency) => {
  const { price } = currency;
  
  if (price.trend === 'up' && price.change_percent > 10) {
    return '建议出售';
  } else if (price.trend === 'down' && price.change_percent < -10) {
    return '建议买入';
  } else if (price.trend === 'up' && price.change_percent > 5) {
    return '可考虑出售';
  } else if (price.trend === 'down' && price.change_percent < -5) {
    return '可考虑买入';
  } else {
    return '持有观望';
  }
};